package com.basker.pisces.orm.data;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

import com.basker.pisces.orm.data.meta.DataSetMeta;
import com.basker.pisces.orm.data.meta.TableMeta;

public class DataSet {
    private Map<String, DataTable> tables = new LinkedHashMap<String, DataTable>();
    private String rootTableName;

    public DataSet(DataSetMeta dataSetMeta) {
        this.rootTableName = dataSetMeta.getRootTableMeta().getName();
    }

    /**
     * @param table table对象，数据集中的表名从table对象中获得
     */
    public void addDataTable(DataTable table) {
        TableMeta tableMeta = table.getTableMeta();
        tables.put(tableMeta.getName(), table);
    }

    /**
     * 获取根表表名
     *
     * @return
     */
    public String getRootTableName() {
        return rootTableName;
    }

    /**
     * 获取指定表的数据
     *
     * @param name 表名
     * @return table 对象
     */
    public DataTable getTable(String name) {
        return tables.get(name);
    }

    /**
     * 获取所有的表数据
     *
     * @return table列表
     */
    public Collection<DataTable> getTables() {
        return tables.values();
    }

}
